import csv
from matplotlib import pyplot as plt
from datetime import datetime

# 从文件中获取日期、最高气温和最低气温
filename = 'death_valley_2014.csv' 
with open(filename) as f: 
    reader = csv.reader(f) 
    header_row = next(reader)
    #for index, column_header in enumerate(header_row):
    #    print(index, column_header)

    dates, highs, lows = [], [], []
    # 由于我们已经读取了文件头行，这个循环将从第二行开始
    for row in reader:      
        try:
            current_date = datetime.strptime(row[0], "%Y-%m-%d")# 读取当前行的第1列
            high = int(row[1])                                  # 读取当前行的第2列 
            low = int(row[3])                                   # 读取当前行的第4列
        except ValueError:
            print(current_date, 'missing data')
        else: 
            dates.append(current_date)
            highs.append(high)
            lows.append(low)

# 将最高气温数据可视化
# 根据数据绘制图形
fig = plt.figure(dpi=128, figsize=(10, 6))
plt.plot(dates, highs, c='red', alpha=0.5)
plt.plot(dates, lows, c='blue', alpha=0.5)
plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.1)

# 设置图形的格式 
title = "Daily high and low temperatures - 2014\nDeath Valley, CA"
plt.title(title, fontsize=20)
plt.xlabel('', fontsize=16)
fig.autofmt_xdate()                                          #绘制斜的日期标签，以免它们彼此重叠
plt.ylabel("Temperature (F)", fontsize=16)
plt.tick_params(axis='both', which='major', labelsize=16)
plt.show()